// 令 Rollup 从 JSON 文件中读取数据
// import json from '@rollup/plugin-json';
// 告诉 Rollup 如何查找外部模块（比如说去寻找node_modules中的文件）
import resolve from '@rollup/plugin-node-resolve';
// 要将 CommonJS 模块转换为 ES2015 供 Rollup 处理
import commonjs from '@rollup/plugin-commonjs';
// 压缩源码
import { terser } from 'rollup-plugin-terser';
// 编译es6代码
import babel, { getBabelOutputPlugin } from '@rollup/plugin-babel';
// 启动本地服务(不能热更新浏览器)
import serve from 'rollup-plugin-serve';
// 热更新浏览器
import livereload from 'rollup-plugin-livereload';

const NODE_ENV = process.env.NODE_ENV;
const plugins = [];
if (NODE_ENV === 'development') {
    plugins.push(
        livereload(),
        serve({
            open: true,
            port: 8000,
            openPage: '/index.html',
            contentBase: 'test'
        })
    );
} else {
    plugins.push(terser());
}

export default {
    input: 'src/main.js',
    output: [
        {
            file: 'lib/index.esm.js',
            format: 'esm',
            plugins: [getBabelOutputPlugin({ presets: ['@babel/preset-env'] })]
        },
        // {
        //     file: 'lib/index.umd.js',
        //     format: 'umd',
        //     name: 'bundle',
        //     globals: {
        //         dayjs: 'dayjs'
        //     }
        // },
        {
            file: 'test/index.js',
            format: 'esm',
            plugins: [getBabelOutputPlugin({ presets: ['@babel/preset-env'] })]
        }
    ],
    watch: {
        exclude: 'node_modules/**'
    },
    external: ['dayjs'],
    plugins: [
        // json(),
        resolve(),
        commonjs(),
        babel({
            // 只编译我们的源代码
            exclude: 'node_modules/**'
        }),
        ...plugins
    ]
};
